package toOffer;

/**
 * @author YuanAo
 * @date 2024/12/12 19:17
 * @description 求平方根
 */

/**
 * 输入一个非负整数，请计算它的平方根。正数的平方根有两个，
 * 只输出其中的正数平方根。如果平方根不是整数，那么只需要输出它的整
 * 数部分。例如，如果输入4则输出2；如果输入18则输出4。
 */
public class toOffer11_2_72 {
    public static void main(String[] args) {
        int x = 10;
        System.out.println(mySqrt(x));
    }

    public static int mySqrt(int x) {
        int left = 0;
        int right = x;
        int mid;
        while (left <= right){
            mid = (left + right) >> 1;
            if (Math.pow(mid, 2) <= x){
                if (Math.pow((mid + 1), 2) > x){
                    return mid;
                }
                left = mid + 1;
            }else {
                right = mid - 1;
            }
        }
        return 0;
    }

}
